Residential gateways are widely used to connect devices in the home to the Internet or any other wide area network (WAN). Residential gateways use in particular digital subscriber line (DSL) technology that enables a high data rate transmission over copper lines or optical lines. During the years, several DSL standards have been established, differing in data rates and in range, for example ADSL and VDSL, which are referred to in this context as xDSL. Also optical transmission for Internet services is well known, for example fiber-to-the-home (FTTH) and fiber-to-the premises (FTTP). Residential gateways, but also other devices such as routers, WLAN (Wireless Local Area Network) forwarders, switches, telephones and set-top boxes, are understood in this context as customer premises equipment (CPE) devices.
IP QoS (Internet Protocol Quality of Service) mechanisms are implemented in integrated circuits as a hardware mechanism, but some more flexible mechanisms are implemented in software. IPQoS is defined, for example, in IEEE P802.1p, which describes eight different classes of service. RFC 3260 describes Differentiated Services (DiffServ), a mechanism for classifying and managing network traffic and providing quality of service on IP networks.
The subject is upstream QoS management on VDSL implemented through queuing mechanisms. On the Broadcom 6368 platform, which is a low-power VDSL and ADSL2+ IC solution for a residential gateway, a limited queuing mechanism is implemented in hardware. Queues can be configured to work in a strict mode or in a WRR (weighted round robin) mode. A combination of both queuing mechanisms is not possible.
Software (IPQoS, AQM (Active Queue Management)) queuing is implemented to allow for more advanced queuing mechanisms. Queues can be configured to have strict mode and WRR mode (e.g. 2 queues strict+2 queues WRR). Also more advanced features (tcp ack filtering, shaping, etc) are implemented in this software module.
To serve a VDSL upstream QoS feature, the IPQoS software module is configured with some combination of queue settings. A mapping is configured in the hardware queues to make sure that the software queues are extended in hardware (with limited feature set).
Drawback of this software module is that it consumes a lot of CPU resources (CPU load+memory usage). This becomes a problem in particular when the upstream synchronization rate on a VDSL line is high (above ˜10 Mbps). As the upstream rate is higher, the queuing mechanism is allowed to transfer more packets per second, which leads to more work for the processor and more CPU load.
It is possible to disable or enable this feature through the configuration interfaces, but that would require manual monitoring of the end customers upstream rate, and deciding to enable or disable the software queuing. This is hard to manage.
Another solution could be to deploy two kinds of software to end customers: one with software queuing enabled, the other one with software queuing disabled. This is even harder to manage.